El encabezado YAML es mucho más que solo un título. Permite una
personalización profunda del documento de salida. Aquí hemos configurado
una tabla de contenidos flotante (toc_float), numeración de
secciones (number_sections), y la capacidad de
ocultar/mostrar código (code_folding: hide).
Una de las características más potentes de R Markdown es la capacidad de crear “plantillas” de informes que se pueden generar con diferentes entradas. Esto se logra definiendo parámetros en el encabezado YAML.
Añadimos un campo params al YAML. Cada parámetro puede
tener un valor por defecto. Para este informe, vamos a parametrizar el
análisis del dataset mpg para que el usuario pueda elegir
una clase de vehículo.
El valor por defecto es "suv", pero podemos cambiarlo al
momento de generar el informe.
Dentro del código, accedemos a estos valores a través de un objeto de
solo lectura llamado params.
En este informe, estamos analizando la clase de vehículo: SUV.
# Filtramos el dataset 'mpg' usando el parámetro definido en el YAML
datos_filtrados <- mpg %>%
filter(class == params$clase_vehiculo)
# Mostramos un mensaje dinámico
cat(paste("Se encontraron", nrow(datos_filtrados), "vehículos de la clase '", params$clase_vehiculo, "'."))## Se encontraron 62 vehículos de la clase ' suv '.
Para generar este informe con un parámetro diferente (por ejemplo, “compact”), usarías la siguiente función en la consola de R:
Los informes HTML pueden ir más allá de las imágenes y tablas estáticas.
DTEl paquete DT (DataTables) permite crear tablas con
paginación, búsqueda, y ordenamiento directamente en tu informe HTML. Es
ideal para explorar datasets.
plotlyDe manera similar, plotly puede convertir tus gráficos
estáticos de ggplot2 en visualizaciones interactivas con
información emergente (tooltips), zoom y más.
Primero, creamos un gráfico ggplot estándar.
p <- ggplot(datos_filtrados, aes(x = displ, y = hwy, color = factor(cyl))) +
geom_point(size = 4, alpha = 0.7) +
labs(
title = paste("Eficiencia vs. Cilindrada para:", params$clase_vehiculo),
x = "Cilindrada del Motor (Litros)",
y = "Millas por Galón en Carretera (HWY)",
color = "Cilindros"
) +
theme_minimal()Ahora, lo convertimos en un objeto plotly con una sola
función. El resultado es un gráfico totalmente interactivo.
Gráfico interactivo de eficiencia del combustible.
Mejorar la estructura y la forma en que nos referimos a los elementos del informe es clave para la profesionalidad.
En lugar de decir “ver la figura de abajo”, podemos crear referencias
dinámicas a figuras y tablas. Para ello, necesitas un label
en el chunk del gráfico (fig.cap también es necesario para
las figuras).
Ejemplo: Como se puede observar en la Figura @ref(fig:plotly), existe una relación clara entre la cilindrada y la eficiencia del combustible.
Para las tablas, el label se define con la sintaxis
(\#tab:nombre-label) en el caption de la tabla. Por
ejemplo: caption: "Mi tabla (\#tab:mi-tabla)".
Puedes organizar contenido en un formato de pestañas, lo cual es muy
útil para no saturar al lector. Para hacerlo, simplemente añade
{.tabset} a un encabezado de Markdown. Todos los
sub-encabezados de nivel inferior se convertirán en pestañas.
.tabset)Aquí mostramos de nuevo el gráfico interactivo.
Gráfico interactivo duplicado para la pestaña.
Aquí presentamos una tabla con estadísticas de resumen.
Y aquí, los datos crudos que usamos para el análisis.
Si tienes un bloque de código que tarda mucho en ejecutarse (ej. un modelo complejo o una consulta a una base de datos grande), puedes guardar en caché sus resultados. La próxima vez que generes el informe, si el código del chunk no ha cambiado, R Markdown usará el resultado guardado en lugar de re-ejecutarlo.
Para activar el cache, usa la opción cache=TRUE.
# Simulamos un proceso largo
Sys.sleep(5) # Espera 5 segundos
# Este resultado será guardado después de la primera ejecución
paste("Este chunk se ejecutó a las:", Sys.time())## [1] "Este chunk se ejecutó a las: 2025-07-16 16:01:50.563021"
R Markdown se integra perfectamente con gestores de referencias.
Primero, crea un archivo de bibliografía (por ejemplo,
refs.bib).
Contenido de refs.bib:
@book{wickham2016,
title={ggplot2: Elegant Graphics for Data Analysis},
author={Wickham, Hadley},
year={2016},
publisher={Springer}
}Luego, referencia este archivo en el YAML
(bibliography: refs.bib). Ahora puedes citar fuentes en tu
texto usando la clave de la referencia, como
[@wickham2016]. El paquete ggplot2 [@wickham2016] es una herramienta fundamental
para la visualización de datos en R.
Al final del documento, puedes generar automáticamente la lista de referencias.